package com.OA.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.OA.entity.BulletinNoticeInformation;
import com.OA.entity.Menu_clz;
import com.OA.entity.Role_clz;
import com.OA.util.Page;

/**
 * 公告管理的服务层
 * @author clz
 *
 */
public interface BulletionService_clz {

	/**
	 * 修改公告
	 * @param bulletinNoticeInformation
	 */
	void updateBulletinNoticeInformation(BulletinNoticeInformation bulletinNoticeInformation);
	/**
	 * 插入公告
	 * @param bulletinNoticeInformation
	 */
	void insertBulletinNoticeInformation(BulletinNoticeInformation bulletinNoticeInformation);
	/**
	 * 删除
	 */
	void remove(Integer bn_id);
	
	/**
	 * 获取所有的子节点
	 * @param menuparentld
	 * @return
	 */
	List<Menu_clz> MenuByMenuparentld(Integer menuparentld);
	
	/**
	 * 删除角色菜单关系表
	 * @param menuid
	 */
	void removeRoleMenu(Integer menuid);
	/**
	 * 删除菜单
	 * @param menuid
	 */
	void removeMenu(Integer menuid);
	
	/**
	 * 修改菜单
	 * @param menu
	 */
	void updataMenu(Menu_clz menu);
	
	/**
	 * 插入角色菜单关系表
	 * @return
	 */
	void insectRolemenu(int roleid,int menuid);
	
	/**
	 * 通过菜单id查询菜单
	 * @param menuid
	 * @return
	 */
	Menu_clz menuByMenuId(Integer menuid);
	
	/**
	 * 查看所有的角色
	 * @return
	 */
	List<Role_clz> selectAllRole();
	
	/**
	 * 通过菜单名字查询菜单id
	 * @param menuname
	 * @return
	 */
	int menuIdByMenuName(String menuname);
	
	/**
	 * 插入数据
	 * @param menu
	 */
	void saveMenu(Menu_clz menu);
	
	/**
	 * 通过userId查询数据形成树形菜单
	 * @param userId
	 * @return
	 */
	List<Menu_clz> bulletinTreeMenuByUserId(Integer userId);
	
	/**
	 * 查询公告页面的内容
	 * @param title
	 * @return
	 */
	BulletinNoticeInformation bulletionContent(int bn_id);
	/**
	 * 通过用户id查看名字
	 * @param userId
	 * @return
	 */
	String userNameById(int userId);

	/**
	 * 公告管理普通员工的分页查询
	 * @param page
	 * @param category
	 * @return
	 */
	Page<BulletinNoticeInformation> selectBulletionByCategory(Page<BulletinNoticeInformation> page,String category,Date firstD,Date nextD ,String title);
}
